// pages/post/post.js
Page({
  data: {
    price: 0, // 初始价格
    storage: 1, // 初始库存
    deliveryOptions: ['自提', '送货上门', '无需送货'],
    deliveryIndex: 0,

    description: '', // 物品描述
    productImage: '' // 产品图片路径
  },

  // 增加价格
  increasePrice: function () {
    this.setData({
      price: this.data.price + 1
    });
  },

  // 减少价格
  decreasePrice: function () {
    if (this.data.price > 0) { // 确保价格不会变成负数
      this.setData({
        price: this.data.price - 1
      });
    } else {
      wx.showToast({
        title: '价格不能小于0',
        icon: 'none'
      });
    }
  },

  // 增加库存
  increaseStorage: function () {
    this.setData({
      storage: this.data.storage + 1
    });
  },

  // 减少库存
  decreaseStorage: function () {
    if (this.data.storage > 0) { // 确保库存不会变成负数
      this.setData({
        storage: this.data.storage - 1
      });
    } else {
      wx.showToast({
        title: '库存不能小于0',
        icon: 'none'
      });
    }
  },

  // 选择图片
  chooseImage: function() {
    wx.chooseImage({
      count: 1, // 只允许选择一张图片
      sizeType: ['original', 'compressed'], // 可以选择原图或压缩图
      sourceType: ['album'], // 只允许从相册选择
      success: function(res) {
        // tempFilePath可以作为img标签的src属性显示图片
        const tempFilePaths = res.tempFilePaths;
        this.setData({
          productImage: tempFilePaths[0]
        });
      }.bind(this),
      fail: function(err) {
        console.error('选择图片失败', err);
      }
    });
  },
 
  // 发布产品
  publishProduct: function() {
    if (!this.data.productImage) {
      wx.showToast({
        title: '请添加产品图片',
        icon: 'none'
      });
      return;
    }
    // 收集要发布的产品信息
    const productData = {
      ProductName: this.data.description, // 这里假设描述就是产品名称
      ProductPrice: this.data.price,
      ProductImage: this.data.productImage, // 这里需要注意的是，productImage应该是上传到服务器后的URL，而不是本地路径
      // 还可以添加其他字段，比如库存和发货方式（根据需求）
    };
 
    // 调用API将产品信息保存到数据库（这里假设有一个saveProductToDatabase方法）
    this.saveProductToDatabase(productData);
  },
 
  // 假设的保存产品到数据库的方法
  saveProductToDatabase: function(productData) {
    // 这里应该是调用后端的API来保存产品数据
    // 例如：wx.request({...})
    // 由于这是一个示例，我们只显示一个成功的提示
    wx.showToast({
      title: '产品发布成功！',
      icon: 'success',
      duration: 2000
    });
 
    // 实际上，您需要将productData发送到您的服务器，并在服务器上处理数据的保存
    // 服务器应该返回一个包含新产品信息的响应，包括_id等
  },
 
  // 处理产品描述输入
  onDescriptionInput: function(e) {
    this.setData({
      description: e.detail.value
    });
  },

  // 其他函数，如保存草稿、发布等...
  saveDraft: function () {
    // 实现保存草稿的逻辑
  },
  //发货方式
  onDeliveryChange: function (e) {
    this.setData({
      deliveryIndex: e.detail.value
    });
  },

  // 存草稿
  saveDraft: function () {
    wx.showModal({
      title: '提示',
      content: '确定要存草稿？',
      success: function (res) {
        if (res.confirm) {
          // 用户点击了“是”
          // 这里可以添加保存草稿的逻辑，比如将数据保存到本地存储
          // 但为了简单起见，我们直接显示成功消息
          wx.showToast({
            title: '存草稿成功！',
            icon: 'success',
            duration: 2000 // 显示2秒
          });

          // 如果需要实际保存数据，可以使用以下代码（示例）
          // wx.setStorageSync('draftData', this.data);
        } else if (res.cancel) {
          // 用户点击了“否”
          console.log('用户取消了存草稿操作');
        }
      }.bind(this), // 注意这里要绑定this，以便在回调函数中访问页面的data和其他方法
      fail: function (err) {
        console.error('显示对话框失败', err);
      }
    });
  },


  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 检查是否有产品数据传递过来
    if (options.product) {
      try {
        // 解析产品数据
        const product = JSON.parse(options.product);
        // 将产品数据设置到页面的 data 中
        this.setData({
          ...product, // 展开产品数据到页面的 data
          price: product.price || 0, // 确保价格有默认值
          storage: product.storage || 1 // 确保库存有默认值
        });
      } catch (e) {
        console.error('解析产品数据失败', e);
      }
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})